﻿<UserControl x:Class="Framework.UI.TestHarness.Views.DragAndDropView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:params="http://schemas.codeplex.com/elysium/params"
             xmlns:extra="http://schemas.extra.com/ui"
             mc:Ignorable="d" 
             d:DesignHeight="768" d:DesignWidth="1024">
    <ScrollViewer>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>
        
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>
        
                <Border x:Name="DragManagerBorder" 
                        extra:DragManager.Data="{Binding ElementName=DataTextBox, Path=Text}"
                        extra:DragManager.Effects="{Binding ElementName=EffectsComboBox, Path=SelectedItem}"
                        extra:DragManager.Format="{Binding ElementName=FormatTextBox, Path=Text}"
                        extra:DragManager.IsContentVisible="{Binding ElementName=ContentVisibleCheckBox, Path=IsChecked}"
                        extra:DragManager.IsEnabled="{Binding ElementName=EnabledCheckBox, Path=IsChecked}"
                        Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                        Style="{StaticResource BorderStyle}">
                    <extra:DragManager.ContentTemplate>
                        <DataTemplate>
                            <Border Style="{StaticResource DragBorderStyle}">
                                <StackPanel Width="400">
                                    <TextBlock Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                                               Style="{StaticResource HeaderTextStyle}" 
                                               Text="Drag Template"/>
                                    <TextBlock Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                               Style="{StaticResource AccentTextStyle}"         
                                               Text="Specify the template for the content to display when dragging. The data context is the drag data. Not specifying any drag template will give a default template."/>
                                    <TextBlock Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                               Style="{StaticResource ContrastTextStyle}" 
                                               Text="{Binding}"/>
                                </StackPanel>
                            </Border>
                        </DataTemplate>
                    </extra:DragManager.ContentTemplate>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                        </Grid.RowDefinitions>
        
                        <TextBlock Grid.ColumnSpan="2" 
                                   Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                                   Style="{StaticResource HeaderTextStyle}" 
                                   Text="Drag Me"/>
                        <TextBlock Grid.ColumnSpan="2" 
                                   Grid.Row="1"
                                   Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                   Style="{StaticResource NormalTextStyle}" 
                                   Text="DragManager is used to create a draggable item with the specified format."/>
        
                        <Label Grid.Row="2" 
                               Content="Data"
                               Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                               Target="{Binding ElementName=DataTextBox}"/>
                        <TextBox x:Name="DataTextBox" 
                                 Grid.Column="1"
                                 Grid.Row="2" 
                                 Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                 Text="Drag Data Can Be Anything (Usually Bound)"/>
        
                        <Label Grid.Row="3" 
                               Content="Effects"
                               Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                               Target="{Binding ElementName=EffectsComboBox}"/>
                        <ComboBox x:Name="EffectsComboBox" 
                                  Grid.Column="1"
                                  Grid.Row="3" 
                                  Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                  SelectedIndex="3">
                            <DragDropEffects>Scroll</DragDropEffects>
                            <DragDropEffects>All</DragDropEffects>
                            <DragDropEffects>None</DragDropEffects>
                            <DragDropEffects>Copy</DragDropEffects>
                            <DragDropEffects>Move</DragDropEffects>
                            <DragDropEffects>Link</DragDropEffects>
                        </ComboBox>
        
                        <Label Grid.Row="4" 
                               Content="Format"
                               Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                               Target="{Binding ElementName=FormatTextBox}"/>
                        <TextBox x:Name="FormatTextBox" 
                                 Grid.Column="1"
                                 Grid.Row="4" 
                                 Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                 Text="Framework.UI.TestHarness.Models.MyDraggableItem"/>
        
                        <Label Grid.Row="5" 
                               Content="Content Visible"
                               Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                               Target="{Binding ElementName=ContentVisibleCheckBox}"/>
                        <CheckBox x:Name="ContentVisibleCheckBox" 
                                  Grid.Column="1"
                                  Grid.Row="5" 
                                  IsChecked="True"
                                  Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                  VerticalAlignment="Center"/>
        
                        <Label Grid.Row="6" 
                               Content="Enabled"
                               Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                               Target="{Binding ElementName=EnabledCheckBox}"/>
                        <CheckBox x:Name="EnabledCheckBox" 
                                  Grid.Column="1"
                                  Grid.Row="6" 
                                  IsChecked="True"
                                  Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                  VerticalAlignment="Center"/>
        
                        <Label Grid.Row="7" 
                               Content="Dragging"
                               Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                               Target="{Binding ElementName=DraggingTextBlock}"/>
                        <TextBlock x:Name="DraggingTextBlock" 
                                   Grid.Column="1"
                                   Grid.Row="7" 
                                   Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                   Style="{StaticResource AccentTextStyle}"
                                   Text="{Binding ElementName=DragManagerBorder, Path=(extra:DragManager.IsDragging)}"/>
        
                    </Grid>
                </Border>
        
                <Border x:Name="DragCommandBorder" 
                        Grid.Column="1" 
                        extra:DragCommand.Command="{Binding ShowMessageBoxCommand}"
                        extra:DragCommand.Format="{Binding ElementName=DropFormatTextBox, Path=Text}"
                        AllowDrop="{Binding ElementName=AllowDropCheckBox, Path=IsChecked}"
                        Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Top, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                        Style="{StaticResource BorderStyle}">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                        </Grid.RowDefinitions>
        
                        <TextBlock Grid.ColumnSpan="2" 
                                   Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                                   Style="{StaticResource HeaderTextStyle}" 
                                   Text="Drop Here"/>
                        <TextBlock Grid.ColumnSpan="2" 
                                   Grid.Row="1"
                                   Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                   Style="{StaticResource NormalTextStyle}" 
                                   Text="DragCommand is used to create an area where a user can drop an item with the specified format."/>
        
                        <Label Grid.Row="2" 
                               Content="Format"
                               Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                               Target="{Binding ElementName=DropFormatTextBox}"/>
                        <TextBox x:Name="DropFormatTextBox" 
                                 Grid.Column="1"
                                 Grid.Row="2" 
                                 Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                 Text="Framework.UI.TestHarness.Models.MyDraggableItem"/>
        
                        <Label Grid.Row="3" 
                               Content="Allow Drop"
                               Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                               Target="{Binding ElementName=AllowDropCheckBox}"/>
                        <CheckBox x:Name="AllowDropCheckBox" 
                                  Grid.Column="1"
                                  Grid.Row="3" 
                                  IsChecked="True"
                                  Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                  VerticalAlignment="Center"/>
        
                        <Label Grid.Row="4" 
                               Content="Dragging Over"
                               Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                               Target="{Binding ElementName=DragOverTextBlock}"/>
                        <TextBlock x:Name="DragOverTextBlock" 
                                   Grid.Column="1"
                                   Grid.Row="4" 
                                   Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                   Style="{StaticResource AccentTextStyle}"
                                   Text="{Binding ElementName=DragCommandBorder, Path=(extra:DragCommand.IsDragOver)}"/>
        
                    </Grid>
                </Border>
                <Border Grid.Column="1" 
                        IsHitTestVisible="False"
                        Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Top, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                        Style="{StaticResource DragBorderStyle}"
                        Visibility="{Binding Converter={StaticResource BoolToVisibilityConverter}, ElementName=DragCommandBorder, Path=(extra:DragCommand.IsDragOver)}"/>
        
                <Border x:Name="DragViewerBorder" 
                        Grid.ColumnSpan="2" 
                        Grid.Row="1" 
                        extra:DragViewer.Format="{Binding ElementName=ViewerFormatTextBox, Path=Text}"
                        Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                        Style="{StaticResource BorderStyle}">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="Auto"/>
                        </Grid.RowDefinitions>
        
                        <TextBlock Grid.ColumnSpan="2" 
                                   Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                                   Style="{StaticResource HeaderTextStyle}" 
                                   Text="Drag Viewer"/>
                        <TextBlock Grid.ColumnSpan="2" 
                                   Grid.Row="1"
                                   Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                   Style="{StaticResource NormalTextStyle}" 
                                   Text="DragViewer is used to determine if an item with the specified format is being dragged."/>
        
                        <Label Grid.Row="2" 
                               Content="Format"
                               Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                               Target="{Binding ElementName=ViewerFormatTextBox}"/>
                        <TextBox x:Name="ViewerFormatTextBox" 
                                 Grid.Column="1"
                                 Grid.Row="2" 
                                 Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                 Text="Framework.UI.TestHarness.Models.MyDraggableItem"/>
        
                        <Label Grid.Row="3" 
                               Content="Dragging"
                               Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                               Target="{Binding ElementName=ViewerDraggingTextBox}"/>
                        <TextBlock x:Name="ViewerDraggingTextBox" 
                                   Grid.Column="1"
                                   Grid.Row="3" 
                                   Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                   Style="{StaticResource AccentTextStyle}"
                                   Text="{Binding ElementName=DragViewerBorder, Path=(extra:DragViewer.IsDragging)}"/>
        
                    </Grid>
                </Border>
        
            </Grid>
        
            <Grid Grid.Row="1">
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>
        
                <TextBlock Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                           Style="{StaticResource HeaderTextStyle}" 
                           Text="Re-Order Items"/>
        
                <TextBlock Grid.Row="1" 
                           Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                           Style="{StaticResource NormalTextStyle}" 
                           Text="Drag and Drop the Items in the DataGrid or ListBox below to re-order them."/>
        
                <DataGrid Grid.Row="2" 
                          extra:UIElementAttached.IsBubblingMouseWheelEvents="True"
                          ItemsSource="{Binding Funds}"
                          Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}">
                    <DataGrid.ItemContainerStyle>
                        <Style BasedOn="{StaticResource DraggableDataGridRowStyle}" TargetType="{x:Type DataGridRow}">
                            <Setter Property="extra:DataGridRowAttached.MoveAboveCommand" Value="{Binding MoveAboveCommand}"/>
                            <Setter Property="extra:DataGridRowAttached.MoveBelowCommand" Value="{Binding MoveBelowCommand}"/>
                            <Setter Property="extra:DataGridRowAttached.MoveDragContentTemplate">
                                <Setter.Value>
                                    <DataTemplate>
                                        <StackPanel>
                                            <TextBlock Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                                                       Style="{StaticResource HeaderTextStyle}" 
                                                       Text="{Binding Name}"/>
                                            <TextBlock Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                                       Style="{StaticResource NormalTextStyle}" 
                                                       Text="Specify any custom content here. Not specifying any content will give a default template."/>
                                        </StackPanel>
                                    </DataTemplate>
                                </Setter.Value>
                            </Setter>
                            <Setter Property="extra:DataGridRowAttached.MoveDragFormat" Value="Framework.UI.TestHarness.Models.Fund.DataGrid"/>
                        </Style>
                    </DataGrid.ItemContainerStyle>
                    <DataGrid.Columns>
                        <extra:DataGridTextColumn Binding="{Binding Name}" 
                                                Header="Name"
                                                IsReadOnly="True"
                                                Width="200"/>
                        <extra:DataGridIntegerColumn Binding="{Binding Priority}" 
                                                   Header="Priority"
                                                   IsReadOnly="True"
                                                   Width="60"/>
                    </DataGrid.Columns>
                </DataGrid>

                <ListBox Grid.Row="3" 
                         extra:UIElementAttached.IsBubblingMouseWheelEvents="True"
                         ItemsSource="{Binding Funds}"
                         Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}">
                    <ListBox.ItemContainerStyle>
                        <Style BasedOn="{StaticResource DraggableListBoxItemStyle}" TargetType="{x:Type ListBoxItem}">
                            <Setter Property="extra:ListBoxItemAttached.MoveAboveCommand" Value="{Binding MoveAboveCommand}"/>
                            <Setter Property="extra:ListBoxItemAttached.MoveBelowCommand" Value="{Binding MoveBelowCommand}"/>
                            <Setter Property="extra:ListBoxItemAttached.MoveDragContentTemplate">
                                <Setter.Value>
                                    <DataTemplate>
                                        <StackPanel>
                                            <TextBlock Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                                                       Style="{StaticResource HeaderTextStyle}" 
                                                       Text="{Binding Name}"/>
                                            <TextBlock Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                                       Style="{StaticResource NormalTextStyle}" 
                                                       Text="Specify any custom content here. Not specifying any content will give a default template."/>
                                        </StackPanel>
                                    </DataTemplate>
                                </Setter.Value>
                            </Setter>
                            <Setter Property="extra:ListBoxItemAttached.MoveDragFormat" Value="Framework.UI.TestHarness.Models.Fund.ListBox"/>
                        </Style>
                    </ListBox.ItemContainerStyle>
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <TextBlock>
                                <TextBlock.Text>
                                    <MultiBinding StringFormat="{}{0} ({1})">
                                        <Binding Path="Name"/>
                                        <Binding Path="Priority"/>
                                    </MultiBinding>
                                </TextBlock.Text>
                            </TextBlock>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>

            </Grid>
        
            <Grid Grid.Row="2">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>
        
                <TextBlock Grid.ColumnSpan="3" 
                           Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                           Style="{StaticResource HeaderTextStyle}" 
                           Text="Highlight Items"/>
        
                <TextBlock Grid.ColumnSpan="3" 
                           Grid.Row="1" 
                           Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                           Style="{StaticResource NormalTextStyle}" 
                           Text="Use these styles to provide additional feedback for when an item is being dragged."/>
        
                <Border Grid.Row="2" 
                        Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                        Style="{StaticResource DragBorderStyle}">
                    <TextBlock Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                               Style="{StaticResource NormalTextStyle}"
                               Text="Show this border around an item when it is being dragged over."/>
                </Border>
        
                <Separator Grid.Column="1" 
                           Grid.Row="2" 
                           Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                           Style="{StaticResource HorizontalDragSeparatorStyle}"
                           Width="100"/>
        
                <Separator Grid.Column="2" 
                           Grid.Row="2" 
                           Height="100"
                           Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                           Style="{StaticResource VerticalDragSeparatorStyle}"/>
        
            </Grid>
        
        </Grid>
    </ScrollViewer>
</UserControl>
